#

# stu_score = [99, 70, 78, 95]
# stu_score = [['tom', 99],
#              ['Jerry', 70],
#              ['Bob', 78],
#              ['kali', 95]]


# #  键 key   值  value    k-v
# #  1. 键可以是什么？
# #    整数   字符串  元组
# #  2. 值可以是 任何合法的python对象
# my_dict = dict()
# my_dict['tom'] = 99
# my_dict['Jerry'] = 70
# my_dict['Bob'] = 78
# my_dict['kali'] = 95

# # 字典也是可以嵌套的

# Mydict1 = {}
# Mydict2 = {"D1": Mydict1,
#            "L1": [(0, 1,), 2, 3]}


# 字典  内置操作  增删改查
my_dict = {}
# 增
my_dict['Tom'] = {"语文": 90,
                  "数学": 78,
                  "英语": 90}
my_dict['Tom']

# setdefault 设置默认键
my_dict.setdefault('Bob', {"语文": 60})  # 添加 键 Bob  并且赋予默认值  {"语文":60}

# 删除

my_dict.pop('Bob')   # 根据键进行删除
my_dict.popitem()    # 随机弹出字典中已有的键值对   k-v  返回一个元组

my_dict.clear()      # 清除字典中所有数据

# 更改
my_dict = {'Tom': {'语文': 70, '数学': 58, '英语': 70},
           'Jerry': None, 'Bob': {'语文': 60}}
my_dict['Tom']['语文'] = 100  # 通过索引方式进行修改
tom_score = {'语文': 79, '数学': 88, '英语': 34, '体育': 90, '地理': 79}
my_dict['Tom'].update(tom_score)  # update方法进行更新操作 如果 key存在就更新 否则 新增到目标字典中

# 查询

'Tom' in my_dict  # 成员查询  只能用于key查找

# 其他方法 values keys items  get


# 不定长参数
def f(*args):
    print("List:", args)


# 字典参数
def ff(**kwargs):  # key word
    print(kwargs)


kwargs = {"a": 2,
          "b": 3,
          "c": 4,
          "d": 6,
          "e": 99}
ff(a=1, b=2)  # 字典解包
f(1, 2, 3, 4)
